package sort;

import java.util.Arrays;

/**
 * 冒泡排序
 */
public class BubbleSort1 {
    public static void main(String[] args) {
        int[] array = {344,656,54,324,12,3445,6566,546};
        System.out.println(Arrays.toString(array));
        sort(array);
        System.out.println(Arrays.toString(array));
    }

    /*
        冒泡排序其实就是把最大值一直往最后面放
        从第1个元素开始j跟j+1相比，如果j大就交换顺序
        一直比较一轮下来后最后一个元素就是最大的了
        总共需要比较数组长度-1轮，i<长度-1，因为比到最后第一个元素肯定是最小的所以要比长度少一轮
        注意：因为每轮比完后面都已经是排序好的了大的了，而j最大只能到长度-2
             避免重复比较，所以j<长度-1-i
     */
    private static void sort(int[] array){
        boolean flag;
        for (int i = 0; i < array.length-1; i++) {
            flag = false;
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j]>array[j+1]){
                    int tem = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tem;
                    flag =true;
                }
            }
            if (!flag){
                break;
            }
            System.out.println(Arrays.toString(array));
        }
    }
}
